[Dies ist ein Fallbeispiel, das in einem separaten Fenster angezeigt wird. So können Sie das Beispiel und ein beliebiges anderes Hilfethema gleichzeitig betrachten. Das Fenster des Fallbeispiels lässt sich verschieben, in seiner Grösse ändern und über das Schliessfeld verlassen]
Wir veranschaulichen die Entwicklung der grafischen Benutzerschnittstelle am Beispiel der Excel-Arbeitsmappe QuadratDialogEinfach.xls aus den folgenden Elementen:
vordefinierte Dialogfelder MsgBox und InputBox
benutzerdefiniertes Steuerelement Schaltfläche
Ereignisprozedur der Schaltfläche.
Das Programm startet nach einem Klick auf die Schaltfläche Quadrat zeichnen und verlangt vom Benutzer die Werte für die Abszisse und Ordinate der linken oberen Quadratecke (siehe Bild). Nach der Eingabe der Seitenlänge zeichnet es ein Quadrat an der eingegebenen Position.

Das folgende Bild zeigt den Projektexplorer der Arbeitsmappe QuadratDialogEinfach.xls Er nennt die GUI-Objekte ArbeitsmappeQuadratDialog, das Tabellenblatt Dialog und ModulQuadratDialogEinfach. Neu ist der Punkt Verweise. Er verweist auf eine bereits in Quadrat.xls definierte Subroutine. Deren Ausgabe haben wir so allgemein definiert, dass sie auf einem beliebigen Tabellenblatt - also auch Dialog - erfolgen kann.
Verweise kann nicht nur auf eine beliebige Arbeitsmappe mit der Erweiterung .xls, sondern auch auf externen Code verweisen. Externer Code steht in ausführbaren Dateien mit der Erweiterungen .exe, in ActiveX-Steuerelementen mit der Erweiterung .ocx oder in Programmbibliotheken (zum Beispiel mit der Erweiterung .dll).
Das folgende Bild zeigt, wie der Entwickler nach einem Klick auf die Symbolleiste Formular die Schaltfläche 'Quadrat zeichnen' auf das Tabellenblatt gezeichnet hat. Im Anschluss daran verlangt Excel den Namen der Ereignisprozedur. Wir werden Sie später unter dem Bezeichner Quadrat_Klick definieren.

Quadrat.xls hat den Kopf der Subroutine Quadrat wie folgt definiert:
Quadrat( Blattname As String, X As Integer,Y As Integer, Seite As Integer).
Die vier Argumente Blattname, X, Y und Seite sollen in QuadratDialogEinfach.xls mit der Subroutine InputBox während des Programmablaufs übergeben werden. Wer Argumentwerte nicht als Programmkonstanten definiert, sondern erst vom Benutzer eingeben lässt, muss mit Eingabefehlern rechnen. Die Ereignisprozedur der Schaltfläche Quadrat zeichnen prüft deshalb die Eingabe. Das Ergebnis der Prüfung wird über MsgBox mitgeteilt. Das folgende Bild zeigt eine mögliche Fehlermeldung:
Die oben gezeichnete Schaltfläche Quadrat zeichnen ist ein benutzerdefiniertes Steuerelement mit einer Ereignisprozedur Quadrat_Click, welche die folgenden Aufgaben erfüllt:
Der Code der Ereignisprozedur Quadrat_Click() lautet wie folgt:
Quadrat_Click() Dim X As String, Y As String, Länge As String ‘-- Eingaben lesen X = InputBox(Prompt:=“X: ”, Title:=“Abszisse”) Y = InputBox(“Y: ”, “Ordinate”) Länge = InputBox(“Seitenlänge: ”, “Quadrat”) ‘-- Eingaben prüfen If X = “0" Or Y = “0" Or Länge = “0" Then MsgBox ”Nulleingaben nicht erlaubt" Else Quadrat “Dialog”, CInt(X),CInt(Y),CInt(Länge) End If End SubSub
Das Eingabefeld wird im Gegensatz zur Schaltfläche Quadrat zeichnen nicht interaktiv entworfen, sondern ist Ergebnis der Anweisung InputBox. Der erste Aufruf von InputBox enthält benannte Argumente, die übrigen Aufrufe Positionsargumente. Die If-Anweisung der Eingabeprüfung enthält eine Bedingung, welche die eingelesenen Argumente auf 0 prüft. Statt mehrerer geschachtelter If-Anweisungen verknüpft die Prozedur die Bedingungen mit Or. Die Schlüsselworte Or, And und Not sind boolsche Operatoren, weil sie die Werte True oder False des Datentyps Boolean ergeben. Ist eine der Eingaben 0, so meldet das Programm Nulleingaben nicht erlaubt" und der Benutzer muss alle drei Argumente nochmals eingeben.
Der Aufruf von Quadrat enthält drei Funktionsaufrufe des folgenden Formats: Ganzzahl = CInt(Zahlen- oder Textausdruck). CInt (engl. convert to integer) konvertiert einen numerischen oder alphanumerischen Ausdruck in einen Wert des Datentyps Integer. Diese Funktion ist erforderlich, weil die Argumente von Quadrat (mit Ausnahme des ersten) ganzzahlig sind, der Rückgabewert der vordefinierten Funktion InputBox aber immer eine Zeichenkette sein muss.